# -*- encoding:utf-8 -*-

import sys
import testcode.base.module.my_module

'''
首先，我们通过 import 语句导入 sys 模块。基本上，这句代码将转化为我们告诉 Python
我们希望使用这一模块。 sys 模块包含了与 Python 解释器及其环境相关的功能，也就是所
谓的系统功能（system）。
当 Python 运行 import sys 这一语句时，它会开始寻找 sys 模块。在这一案例中，由于其
是一个内置模块，因此 Python 知道应该在哪里找到它。
如果它不是一个已编译好的模块，即用 Python 编写的模块，那么 Python 解释器将从它的
sys.path 变量所提供的目录中进行搜索。如果找到了对应模块，则该模块中的语句将在开始
运行，并能够为你所使用。在这里需要注意的是，初始化工作只需在我们第一次导入模块时
完成。
'''


def printSysArgv():
    '''
    假设我们的传递给脚本参数为：we are arguments
    在这里要记住的是，运行的脚本名称在 sys.argv 的列表中总会位列第一。因此，在这一案
    例中我们将会有如下对应关系： 'module_using_sys.py' 对应 sys.argv[0] ， 'we' 对应
    sys.argv[1] ， 'are' 对应 sys.argv[2] ， 'arguments' 对应 sys.argv[3] 。要注意到
    Python 从 0 开始计数，而不是 1。
    '''
    print('\nThe command line arguments are:\n')
    for sargv in sys.argv:
        print(sargv)


def printSysPath():
    '''
    sys.path 内包含了导入模块的字典名称列表。你能观察到 sys.path 的第一段字符串是空的
    ——这一空字符串代表当前目录也是 sys.path 的一部分，它与 PYTHONPATH 环境变量等
    同。这意味着你可以直接导入位于当前目录的模块。否则，你必须将你的模块放置在
    sys.path 内所列出的目录中。
    另外要注意的是当前目录指的是程序启动的目录。你可以通过运行 import os;
    print(os.getcwd()) 来查看你的程序目前所处在的目录。
    '''
    print('\n\nThe PythonPath is :\n')
    for spath in sys.path:
        print(spath)


printSysArgv()
printSysPath()

#引入自己创建的module
testcode.base.module.my_module.say_hi()


if __name__ == '__main__':
    print('\nThis program is being run by itself')
else:
    print('\nI am being imported from another module')
